.code:
  PUSH1 0xE0		uint32[4] memory key
  PUSH1 0x40		contract rc5 {...
  MSTORE			uint32[4] memory key
  PUSH1 0x60		contract rc5 {...
  PUSH1 0x4		uint32[4] memory key
  DUP2			contract rc5 {...
tag2: 
  JUMPDEST		uint32[4] memory key
  PUSH1 0x0		uint32[4] memory key
  DUP2			uint32[4] memory key
  MSTORE			uint32[4] memory key
  PUSH1 0x20		uint32[4] memory key
  ADD			uint32[4] memory key
  SWAP1			uint32[4] memory key
  PUSH1 0x1		uint32[4] memory key
  SWAP1			uint32[4] memory key
  SUB			uint32[4] memory key
  SWAP1			uint32[4] memory key
  DUP2			uint32[4] memory key
  PUSH [tag2]		uint32[4] memory key
  JUMPI			uint32[4] memory key
  POP			
  POP			
  PUSH1 0x40		contract rc5 {...
  DUP1			uint32[26] memory box
  MLOAD			uint32[26] memory box
  PUSH2 0x340		uint32[26] memory box
  DUP2			uint32[26] memory box
  ADD			uint32[26] memory box
  SWAP1			uint32[26] memory box
  SWAP2			uint32[26] memory box
  MSTORE			uint32[26] memory box
  PUSH1 0x1A		uint32[26] memory box
  DUP2			uint32[26] memory box
tag3: 
  JUMPDEST		uint32[26] memory box
  PUSH1 0x0		uint32[26] memory box
  DUP2			uint32[26] memory box
  MSTORE			uint32[26] memory box
  PUSH1 0x20		uint32[26] memory box
  ADD			uint32[26] memory box
  SWAP1			uint32[26] memory box
  PUSH1 0x1		uint32[26] memory box
  SWAP1			uint32[26] memory box
  SUB			uint32[26] memory box
  SWAP1			uint32[26] memory box
  DUP2			uint32[26] memory box
  PUSH [tag3]		uint32[26] memory box
  JUMPI			uint32[26] memory box
  POP			
  POP			
  PUSH1 0x40		contract rc5 {...
  DUP1			uint32[4] memory msg
  MLOAD			uint32[4] memory msg
  PUSH1 0x80		uint32[4] memory key
  DUP2			uint32[4] memory msg
  ADD			uint32[4] memory msg
  SWAP1			uint32[4] memory msg
  SWAP2			uint32[4] memory msg
  MSTORE			uint32[4] memory msg
  PUSH1 0x4		uint32[4] memory key
  DUP2			uint32[4] memory msg
tag4: 
  JUMPDEST		uint32[4] memory msg
  PUSH1 0x0		uint32[4] memory msg
  DUP2			uint32[4] memory msg
  MSTORE			uint32[4] memory msg
  PUSH1 0x20		uint32[4] memory msg
  ADD			uint32[4] memory msg
  SWAP1			uint32[4] memory msg
  PUSH1 0x1		uint32[4] memory msg
  SWAP1			uint32[4] memory msg
  SUB			uint32[4] memory msg
  SWAP1			uint32[4] memory msg
  DUP2			uint32[4] memory msg
  PUSH [tag4]		uint32[4] memory msg
  JUMPI			uint32[4] memory msg
  POP			
  POP			
  PUSH1 0x40		contract rc5 {...
  DUP1			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  MLOAD			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  PUSH1 0x80		uint32[4] memory key
  DUP2			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  ADD			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  DUP3			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  MSTORE			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  PUSH4 0x243F6A88		0x243F6A88
  DUP2			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  MSTORE			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  PUSH4 0x85A308D3		0x85A308D3
  PUSH1 0x20		uint32[4] memory key
  DUP3			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  ADD			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  MSTORE			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  PUSH4 0x452821E6		0x452821E6
  SWAP2			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  DUP2			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  ADD			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  SWAP2			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  SWAP1			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  SWAP2			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  MSTORE			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  PUSH4 0x38D01377		0x38D01377
  PUSH1 0x60		contract rc5 {...
  DUP3			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  ADD			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  MSTORE			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  PUSH4 0xB7E15163		0xb7e15163
  DUP4			S[0] = 0xb7e15163
  MSTORE			S[0] = 0xb7e15163
  SWAP3			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  POP			
  PUSH1 0x0		
  PUSH [tag6]		expand(key, box)
  DUP5			uint32[4] memory key = [0x243F6A88, 0x85A308D3, 0x452821E6, 0x38D01377]
  DUP5			++i
  DUP4			
  DUP1			
  PUSH1 0x1		uint32[4] memory key
  DUP2			
  DUP1			
tag14: 
  JUMPDEST		for (i = 1; i < 26; ++i)...
  PUSH1 0x1A		26
  DUP4			i
  PUSH4 0xFFFFFFFF		i < 26
  AND			i < 26
  LT			i < 26
  ISZERO			for (i = 1; i < 26; ++i)...
  PUSH [tag15]		for (i = 1; i < 26; ++i)...
  JUMPI			for (i = 1; i < 26; ++i)...
  DUP6			S
  PUSH1 0x1		1
  DUP5			i
  SUB			i - 1
  PUSH4 0xFFFFFFFF		S[i - 1]
  AND			S[i - 1]
  PUSH1 0x1A		S[i - 1]
  DUP2			S[i - 1]
  LT			S[i - 1]
  ISZERO			S[i - 1]
  PUSH [ErrorTag]		S[i - 1]
  JUMPI			S[i - 1]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			S[i - 1]
  PUSH4 0x9E3779B9		0x9e3779b9
  ADD			S[i - 1] + 0x9e3779b9
  DUP7			S
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  DUP6			S[i]
  AND			S[i]
  PUSH1 0x1A		uint32[26] memory box
  DUP2			S[i]
  LT			S[i]
  ISZERO			S[i]
  PUSH [ErrorTag]		S[0]
  JUMPI			S[i]
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  SWAP3			i < 26
  SWAP1			i < 26
  SWAP3			i < 26
  AND			i < 26
  PUSH1 0x20		uint32[4] memory key
  SWAP3			S[i - 1]
  SWAP1			S[i - 1]
  SWAP3			S[i - 1]
  MUL			S[i - 1]
  ADD			S[i - 1]
  MSTORE			S[i] = S[i - 1] + 0x9e3779b9
  PUSH1 0x1		uint32[4] memory key
  SWAP3			++i
  SWAP1			++i
  SWAP3			++i
  ADD			++i
  SWAP2			++i
  PUSH [tag14]		for (i = 1; i < 26; ++i)...
  JUMP			for (i = 1; i < 26; ++i)...
tag6: 
  JUMPDEST		expand(key, box)
  POP			
  POP			
  PUSH1 0x40		contract rc5 {...
  DUP1			uint32[4] memory tmp
  MLOAD			uint32[4] memory tmp
  PUSH1 0x80		uint32[4] memory key
  DUP2			uint32[4] memory tmp
  ADD			uint32[4] memory tmp
  DUP3			uint32[4] memory tmp
  MSTORE			uint32[4] memory tmp
  PUSH4 0xDEADBEEF		0xdeadbeef
  DUP1			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  DUP3			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  MSTORE			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  PUSH1 0x20		uint32[4] memory key
  DUP3			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  ADD			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  DUP2			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  SWAP1			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  MSTORE			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  SWAP2			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  DUP2			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  ADD			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  DUP3			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  SWAP1			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  MSTORE			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  PUSH1 0x60		contract rc5 {...
  DUP2			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  ADD			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  SWAP2			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  SWAP1			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  SWAP2			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  MSTORE			uint32[4] memory msg = [0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef]
  PUSH1 0x0		
tag8: 
  JUMPDEST		for (int i = 0; i < 10000; ++i)...
  PUSH2 0x2710		10000
  DUP2			i
  SLT			i < 10000
  ISZERO			for (int i = 0; i < 10000; ++i)...
  PUSH [tag9]		for (int i = 0; i < 10000; ++i)...
  JUMPI			for (int i = 0; i < 10000; ++i)...
  PUSH [tag11]		test(box, msg)
  DUP4			box
  DUP4			msg
  PUSH1 0x80		uint32[4] memory tmp
  PUSH1 0x40		uint32[4] memory tmp
  MLOAD			uint32[4] memory tmp
  SWAP1			uint32[4] memory tmp
  DUP2			uint32[4] memory tmp
  ADD			uint32[4] memory tmp
  PUSH1 0x40		uint32[4] memory tmp
  MSTORE			uint32[4] memory tmp
  DUP1			uint32[4] memory tmp
  PUSH1 0x4		uint32[4] memory tmp
  SWAP1			uint32[4] memory tmp
tag22: 
  JUMPDEST		uint32[4] memory tmp
  PUSH1 0x0		uint32[4] memory tmp
  DUP2			uint32[4] memory tmp
  MSTORE			uint32[4] memory tmp
  PUSH1 0x20		uint32[4] memory tmp
  ADD			uint32[4] memory tmp
  SWAP1			uint32[4] memory tmp
  PUSH1 0x1		uint32[4] memory tmp
  SWAP1			uint32[4] memory tmp
  SUB			uint32[4] memory tmp
  SWAP1			uint32[4] memory tmp
  DUP2			uint32[4] memory tmp
  PUSH [tag22]		uint32[4] memory tmp
  JUMPI			uint32[4] memory tmp
  SWAP1			uint32[4] memory tmp
  POP			uint32[4] memory tmp
  POP			uint32[4] memory tmp
  PUSH1 0x0		uint i
  DUP3			msg
  SWAP2			uint32[4] memory tmp = msg
  POP			uint32[4] memory tmp = msg
  PUSH [tag24]		encrypt(S, tmp)
  DUP5			S
  DUP4			tmp
  PUSH1 0x0		
  DUP1			
  DUP1			
  DUP1			
tag38: 
  JUMPDEST		for (uint32 i = 0; i < 4; i += 2) {...
  PUSH1 0x4		4
  DUP5			i
  PUSH4 0xFFFFFFFF		i < 4
  AND			i < 4
  LT			i < 4
  ISZERO			for (uint32 i = 0; i < 4; i += 2) {...
  PUSH [tag39]		for (uint32 i = 0; i < 4; i += 2) {...
  JUMPI			for (uint32 i = 0; i < 4; i += 2) {...
  DUP5			inout
  DUP5			i
  PUSH4 0xFFFFFFFF		inout[i]
  AND			inout[i]
  PUSH1 0x4		inout[i]
  DUP2			inout[i]
  LT			inout[i]
  ISZERO			inout[i]
  PUSH [ErrorTag]		inout[i]
  JUMPI			inout[i]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			inout[i]
  SWAP3			inout[i]
  POP			
  DUP5			inout
  PUSH1 0x1		uint32[4] memory key
  DUP6			i+1
  ADD			i+1
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  AND			inout[i+1]
  PUSH1 0x4		uint32[4] memory key
  DUP2			inout[i+1]
  LT			inout[i+1]
  ISZERO			inout[i+1]
  PUSH [ErrorTag]		S[0]
  JUMPI			inout[i+1]
  PUSH1 0x20		uint32[4] memory key
  SWAP1			S[i - 1]
  DUP2			S[i - 1]
  MUL			S[i - 1]
  SWAP2			S[i - 1]
  SWAP1			S[i - 1]
  SWAP2			S[i - 1]
  ADD			S[i - 1]
  MLOAD			inout[i]
  DUP8			inout[i]
  MLOAD			inout[i]
  SWAP2			S[i - 1]
  DUP9			S[i - 1]
  ADD			S[i - 1]
  MLOAD			inout[i]
  SWAP2			A += S[0]
  SWAP1			A += S[0]
  SWAP5			A += S[0]
  ADD			A += S[0]
  SWAP4			A += S[0]
  ADD			B += S[1]
  SWAP2			B += S[1]
  POP			
  PUSH1 0xC		12
  SWAP1			12
  POP			
tag41: 
  JUMPDEST		for (int j = 12; j <= 4; ++j) {...
  PUSH1 0x4		uint32[4] memory key
  DUP2			j <= 4
  SGT			j <= 4
  PUSH [tag42]		for (int j = 12; j <= 4; ++j) {...
  JUMPI			for (int j = 12; j <= 4; ++j) {...
  DUP6			S
  DUP5			i
  PUSH1 0x2		2
  MUL			2 * i
  PUSH4 0xFFFFFFFF		S[2 * i]
  AND			S[2 * i]
  PUSH1 0x1A		S[2 * i]
  DUP2			S[2 * i]
  LT			S[2 * i]
  ISZERO			S[2 * i]
  PUSH [ErrorTag]		S[2 * i]
  JUMPI			S[2 * i]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			S[2 * i + 1]
  PUSH [tag44]		rotate_left((A ^ B), B)
  DUP4			A ^ B
  DUP6			A ^ B
  XOR			A ^ B
  DUP5			B
  PUSH [tag20]		rotate_right
  JUMP	[in]		rotate_left((A ^ B), B)
tag9: 
  JUMPDEST		for (int i = 0; i < 10000; ++i)...
  POP			function rc5() {...
  POP			function rc5() {...
  POP			function rc5() {...
  POP			function rc5() {...
  PUSH #[$00000000…00000000]		contract rc5 {...
  DUP1			contract rc5 {...
  PUSH [$00000000…00000000]		contract rc5 {...
  PUSH1 0x0		contract rc5 {...
  CODECOPY			contract rc5 {...
  PUSH1 0x0		contract rc5 {...
  RETURN			contract rc5 {...
tag11: 
  JUMPDEST		test(box, msg)
  PUSH1 0x1		uint32[4] memory key
  ADD			++i
  PUSH [tag8]		for (int i = 0; i < 10000; ++i)...
  JUMP			for (int i = 0; i < 10000; ++i)...
tag15: 
  JUMPDEST		for (i = 1; i < 26; ++i)...
  POP			
  PUSH1 0x0		
  SWAP2			
  POP			
  DUP2			
  SWAP1			
  POP			
  PUSH1 0x4E		3*26
tag17: 
  JUMPDEST		while (n-- > 0) {...
  PUSH1 0x0		
  NOT			
  DUP2			n--
  ADD			n--
  SWAP1			n--
  PUSH1 0x0		
  SWAP1			n-- > 0
  SGT			n-- > 0
  ISZERO			while (n-- > 0) {...
  PUSH [tag18]		while (n-- > 0) {...
  JUMPI			while (n-- > 0) {...
  PUSH [tag19]		rotate_left((S[i] + A + B), 3)
  DUP5			B
  DUP7			A
  DUP9			S
  DUP7			i
  PUSH4 0xFFFFFFFF		S[i]
  AND			S[i]
  PUSH1 0x1A		S[i]
  DUP2			S[i]
  LT			S[i]
  ISZERO			S[i]
  PUSH [ErrorTag]		S[i]
  JUMPI			S[i]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			S[i - 1]
  ADD			S[i] + A
  ADD			S[i] + A + B
  PUSH1 0x3		uint32[4] memory key
tag20: 
  JUMPDEST		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
  PUSH1 0x1F		0x1f
  AND			n &= 0x1f
  PUSH1 0x0		
  PUSH [tag33]		shift_right(v, 32 - n)
  DUP4			S[i - 1]
  PUSH1 0x20		uint32[4] memory key
  DUP5			32 - n
  SWAP1			32 - n
  SUB			32 - n
tag34: 
  JUMPDEST		function shift_right(uint32 v, uint32 n) returns (uint32) {...
  PUSH1 0x2		++i
  DUP2			2**n
  SWAP1			2**n
  EXP			2**n
  SWAP1			v *= 2**n
  SWAP2			v *= 2**n
  MUL			v *= 2**n
  SWAP1			v *= 2**n
  DUP2			v *= 2**n
tag32: 
  JUMPDEST		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
  SWAP3			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
  SWAP2			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
  POP			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
  POP			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
  JUMP	[out]		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
tag18: 
  JUMPDEST		while (n-- > 0) {...
  POP			function expand(uint32[4] L, uint32[26] S) {...
  POP			function expand(uint32[4] L, uint32[26] S) {...
  POP			function expand(uint32[4] L, uint32[26] S) {...
  POP			function expand(uint32[4] L, uint32[26] S) {...
  POP			function expand(uint32[4] L, uint32[26] S) {...
  POP			function expand(uint32[4] L, uint32[26] S) {...
  POP			function expand(uint32[4] L, uint32[26] S) {...
  JUMP	[out]		function expand(uint32[4] L, uint32[26] S) {...
tag19: 
  JUMPDEST		rotate_left((S[i] + A + B), 3)
  DUP7			S
  DUP5			i
  PUSH4 0xFFFFFFFF		S[i]
  AND			S[i]
  PUSH1 0x1A		S[i]
  DUP2			S[i]
  LT			S[i]
  ISZERO			S[i]
  PUSH [ErrorTag]		S[i]
  JUMPI			S[i]
  SWAP1			S[i]
  SWAP1			S[i]
  PUSH1 0x20		S[i]
  MUL			S[i]
  ADD			S[i]
  SWAP1			S[i] = rotate_left((S[i] + A + B), 3)
  PUSH4 0xFFFFFFFF		S[i] = rotate_left((S[i] + A + B), 3)
  AND			S[i] = rotate_left((S[i] + A + B), 3)
  SWAP1			S[i] = rotate_left((S[i] + A + B), 3)
  DUP2			S[i] = rotate_left((S[i] + A + B), 3)
  DUP2			S[i] = rotate_left((S[i] + A + B), 3)
  MSTORE			S[i] = rotate_left((S[i] + A + B), 3)
  PUSH1 0x20		S[i] = rotate_left((S[i] + A + B), 3)
  ADD			S[i] = rotate_left((S[i] + A + B), 3)
  POP			S[i] = rotate_left((S[i] + A + B), 3)
  SWAP5			A = S[i] = rotate_left((S[i] + A + B), 3)
  POP			A = S[i] = rotate_left((S[i] + A + B), 3)
  DUP5			A = S[i] = rotate_left((S[i] + A + B), 3)
  POP			A = S[i] = rotate_left((S[i] + A + B), 3)
  PUSH [tag21]		rotate_left((L[j] + A + B), A + B)
  DUP5			B
  DUP7			A
  DUP10			L
  DUP6			j
  PUSH4 0xFFFFFFFF		L[j]
  AND			L[j]
  PUSH1 0x4		L[j]
  DUP2			L[j]
  LT			L[j]
  ISZERO			L[j]
  PUSH [ErrorTag]		L[j]
  JUMPI			L[j]
  PUSH1 0x20		uint32[4] memory key
  MUL			L[j]
  ADD			L[j]
  MLOAD			L[j]
  ADD			L[j] + A
  ADD			L[j] + A + B
  DUP7			A + B
  DUP7			A + B
  ADD			A + B
  PUSH [tag20]		rotate_right
  JUMP	[in]		rotate_left((L[j] + A + B), A + B)
tag21: 
  JUMPDEST		rotate_left((L[j] + A + B), A + B)
  DUP8			L
  DUP4			j
  PUSH4 0xFFFFFFFF		L[j]
  AND			L[j]
  PUSH1 0x4		L[j]
  DUP2			L[j]
  LT			L[j]
  ISZERO			L[j]
  PUSH [ErrorTag]		L[j]
  JUMPI			L[j]
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  SWAP3			L[j] = rotate_left((L[j] + A + B), A + B)
  DUP4			L[j] = rotate_left((L[j] + A + B), A + B)
  AND			L[j] = rotate_left((L[j] + A + B), A + B)
  PUSH1 0x20		uint32[4] memory key
  SWAP2			L[j]
  SWAP1			L[j]
  SWAP2			L[j]
  MUL			L[j]
  SWAP1			L[j]
  SWAP2			L[j]
  ADD			L[j]
  DUP2			L[j] = rotate_left((L[j] + A + B), A + B)
  SWAP1			L[j] = rotate_left((L[j] + A + B), A + B)
  MSTORE			L[j] = rotate_left((L[j] + A + B), A + B)
  SWAP5			L[j] = rotate_left((L[j] + A + B), A + B)
  POP			
  PUSH1 0x1A		uint32[26] memory box
  PUSH1 0x1		uint32[4] memory key
  SWAP5			++i
  DUP6			++i
  ADD			++i
  DUP3			++i % 26
  AND			++i % 26
  MOD			++i % 26
  SWAP4			++i % 26
  PUSH1 0x4		uint32[4] memory key
  SWAP4			++i
  ADD			++i
  AND			++j % 4
  SWAP2			++j % 4
  SWAP1			++j % 4
  SWAP2			++j % 4
  MOD			++j % 4
  SWAP1			++j % 4
  PUSH [tag17]		while (n-- > 0) {...
  JUMP			while (n-- > 0) {...
tag24: 
  JUMPDEST		encrypt(S, tmp)
  PUSH [tag26]		decrypt(S, tmp)
  DUP5			S
  DUP4			tmp
  PUSH1 0x0		
  DUP1			
  DUP1			
  DUP1			
tag47: 
  JUMPDEST		for (uint32 i = 0; i < 4; i += 2) {...
  PUSH1 0x4		4
  DUP5			i
  PUSH4 0xFFFFFFFF		i < 4
  AND			i < 4
  LT			i < 4
  ISZERO			for (uint32 i = 0; i < 4; i += 2) {...
  PUSH [tag39]		for (uint32 i = 0; i < 4; i += 2) {...
  JUMPI			for (uint32 i = 0; i < 4; i += 2) {...
  DUP5			inout
  DUP5			i
  PUSH4 0xFFFFFFFF		inout[i]
  AND			inout[i]
  PUSH1 0x4		inout[i]
  DUP2			inout[i]
  LT			inout[i]
  ISZERO			inout[i]
  PUSH [ErrorTag]		inout[i]
  JUMPI			inout[i]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			inout[i]
  SWAP3			inout[i]
  POP			
  DUP5			inout
  PUSH1 0x1		uint32[4] memory key
  DUP6			i+1
  ADD			i+1
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  AND			inout[i+1]
  PUSH1 0x4		uint32[4] memory key
  DUP2			inout[i+1]
  LT			inout[i+1]
  ISZERO			inout[i+1]
  PUSH [ErrorTag]		S[0]
  JUMPI			inout[i+1]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			inout[i]
  SWAP2			inout[i]
  POP			
  PUSH1 0xC		12
  SWAP1			12
  POP			
tag50: 
  JUMPDEST		for (int j = 12; j > 0; --j) {...
  PUSH1 0x0		0
  DUP2			j
  SGT			j > 0
  ISZERO			for (int j = 12; j > 0; --j) {...
  PUSH [tag51]		for (int j = 12; j > 0; --j) {...
  JUMPI			for (int j = 12; j > 0; --j) {...
  DUP3			A
  PUSH [tag53]		rotate_right(B - S[2 * i + 1], A)
  DUP8			S
  DUP7			i
  PUSH1 0x2		2
  MUL			2 * i
  PUSH1 0x1		1
  ADD			2 * i + 1
  PUSH4 0xFFFFFFFF		S[2 * i + 1]
  AND			S[2 * i + 1]
  PUSH1 0x1A		S[2 * i + 1]
  DUP2			S[2 * i + 1]
  LT			S[2 * i + 1]
  ISZERO			S[2 * i + 1]
  PUSH [ErrorTag]		S[2 * i + 1]
  JUMPI			S[2 * i + 1]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			S[2 * i + 1]
  DUP5			B - S[2 * i + 1]
  SUB			B - S[2 * i + 1]
  DUP6			inout
  PUSH [tag20]		rotate_right
  JUMP	[in]		rotate_right(B - S[2 * i + 1], A)
tag26: 
  JUMPDEST		decrypt(S, tmp)
  POP			
  PUSH1 0x0		
tag28: 
  JUMPDEST		for (uint i = 0; i < 4; ++i) {...
  PUSH1 0x4		4
  DUP2			i
  LT			i < 4
  ISZERO			for (uint i = 0; i < 4; ++i) {...
  PUSH [tag29]		for (uint i = 0; i < 4; ++i) {...
  JUMPI			for (uint i = 0; i < 4; ++i) {...
  DUP2			tmp
  DUP2			i
  PUSH1 0x4		tmp[i]
  DUP2			tmp[i]
  LT			tmp[i]
  ISZERO			tmp[i]
  PUSH [ErrorTag]		tmp[i]
  JUMPI			tmp[i]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			tmp[i]
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  AND			msg[i] != tmp[i]
  DUP4			i
  DUP3			i
  PUSH1 0x4		uint32[4] memory key
  DUP2			msg[i]
  LT			msg[i]
  ISZERO			msg[i]
  PUSH [ErrorTag]		S[0]
  JUMPI			msg[i]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[i - 1]
  ADD			S[i - 1]
  MLOAD			tmp[i]
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  AND			msg[i] != tmp[i]
  EQ			msg[i] != tmp[i]
  PUSH [tag31]		if (msg[i] != tmp[i])...
  JUMPI			if (msg[i] != tmp[i])...
  PUSH [ErrorTag]		throw
  JUMP			throw
tag29: 
  JUMPDEST		for (uint i = 0; i < 4; ++i) {...
  POP			function test(uint32[26] S, uint32[4] msg) {...
  POP			function test(uint32[26] S, uint32[4] msg) {...
  POP			function test(uint32[26] S, uint32[4] msg) {...
  POP			function test(uint32[26] S, uint32[4] msg) {...
  JUMP	[out]		function test(uint32[26] S, uint32[4] msg) {...
tag31: 
  JUMPDEST		if (msg[i] != tmp[i])...
  PUSH1 0x1		uint32[4] memory key
  ADD			++i
  PUSH [tag28]		for (uint i = 0; i < 4; ++i) {...
  JUMP			for (uint i = 0; i < 4; ++i) {...
tag33: 
  JUMPDEST		shift_right(v, 32 - n)
  PUSH [tag35]		shift_left(v, n)
  DUP5			v
  DUP5			n
  PUSH [tag34]		shift_left
  JUMP	[in]		shift_left(v, n)
tag35: 
  JUMPDEST		shift_left(v, n)
  OR			shift_left(v, n) | shift_right(v, 32 - n)
  SWAP1			return shift_left(v, n) | shift_right(v, 32 - n)
  POP			return shift_left(v, n) | shift_right(v, 32 - n)
  PUSH [tag32]		return shift_left(v, n) | shift_right(v, 32 - n)
  JUMP			return shift_left(v, n) | shift_right(v, 32 - n)
tag39: 
  JUMPDEST		for (uint32 i = 0; i < 4; i += 2) {...
  POP			function encrypt(uint32[26] S, uint32[4] inout) {...
  POP			function encrypt(uint32[26] S, uint32[4] inout) {...
  POP			function encrypt(uint32[26] S, uint32[4] inout) {...
  POP			function encrypt(uint32[26] S, uint32[4] inout) {...
  POP			function encrypt(uint32[26] S, uint32[4] inout) {...
  POP			function encrypt(uint32[26] S, uint32[4] inout) {...
  JUMP	[out]		function encrypt(uint32[26] S, uint32[4] inout) {...
tag42: 
  JUMPDEST		for (int j = 12; j <= 4; ++j) {...
  DUP3			A
  DUP6			inout
  DUP6			i
  PUSH4 0xFFFFFFFF		inout[i]
  AND			inout[i]
  PUSH1 0x4		inout[i]
  DUP2			inout[i]
  LT			inout[i]
  ISZERO			inout[i]
  PUSH [ErrorTag]		inout[i]
  JUMPI			inout[i]
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  SWAP3			i < 26
  DUP4			i < 26
  AND			i < 26
  PUSH1 0x20		uint32[4] memory key
  SWAP2			S[i - 1]
  SWAP1			S[i - 1]
  SWAP2			S[i - 1]
  MUL			S[i - 1]
  SWAP1			S[i - 1]
  SWAP2			S[i - 1]
  ADD			S[i - 1]
  MSTORE			inout[i] = A
  DUP3			i
  SWAP1			i
  DUP7			S
  SWAP1			S
  PUSH1 0x1		uint32[4] memory key
  DUP8			i+1
  ADD			i+1
  AND			inout[i+1]
  PUSH1 0x4		uint32[4] memory key
  DUP2			inout[i+1]
  LT			inout[i+1]
  ISZERO			inout[i+1]
  PUSH [ErrorTag]		S[0]
  JUMPI			inout[i+1]
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  SWAP3			i < 26
  SWAP1			i < 26
  SWAP3			i < 26
  AND			i < 26
  PUSH1 0x20		uint32[4] memory key
  SWAP3			S[i - 1]
  SWAP1			S[i - 1]
  SWAP3			S[i - 1]
  MUL			S[i - 1]
  ADD			S[i - 1]
  MSTORE			inout[i+1] = B
  PUSH1 0x2		++i
  SWAP4			i += 2
  SWAP1			i += 2
  SWAP4			i += 2
  ADD			i += 2
  SWAP3			i += 2
  PUSH [tag38]		for (uint32 i = 0; i < 4; i += 2) {...
  JUMP			for (uint32 i = 0; i < 4; i += 2) {...
tag44: 
  JUMPDEST		rotate_left((A ^ B), B)
  ADD			rotate_left((B ^ A), A) + S[2 * i + 1]
  SWAP3			rotate_left((B ^ A), A) + S[2 * i + 1]
  POP			
  DUP6			S
  PUSH1 0x2		++i
  DUP6			2 * i
  MUL			2 * i
  PUSH1 0x1		uint32[4] memory key
  ADD			2 * i + 1
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  AND			S[2 * i + 1]
  PUSH1 0x1A		uint32[26] memory box
  DUP2			S[2 * i + 1]
  LT			S[2 * i + 1]
  ISZERO			S[2 * i + 1]
  PUSH [ErrorTag]		S[0]
  JUMPI			S[2 * i + 1]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[2 * i + 1]
  ADD			S[2 * i + 1]
  MLOAD			S[2 * i + 1]
  PUSH [tag45]		rotate_left((B ^ A), A)
  DUP5			B ^ A
  DUP5			B ^ A
  XOR			B ^ A
  DUP6			rotate_left((B ^ A), A) + S[2 * i + 1]
  PUSH [tag20]		rotate_right
  JUMP	[in]		rotate_left((B ^ A), A)
tag45: 
  JUMPDEST		rotate_left((B ^ A), A)
  ADD			rotate_left((B ^ A), A) + S[2 * i + 1]
  SWAP2			rotate_left((B ^ A), A) + S[2 * i + 1]
  POP			
  PUSH1 0x1		uint32[4] memory key
  ADD			++i
  PUSH [tag41]		for (int j = 12; j <= 4; ++j) {...
  JUMP			for (int j = 12; j <= 4; ++j) {...
tag51: 
  JUMPDEST		for (int j = 12; j > 0; --j) {...
  PUSH1 0x20		uint32[4] memory key
  DUP7			S[i - 1]
  ADD			S[i - 1]
  MLOAD			S[2 * i + 1]
  DUP7			S[2 * i + 1]
  MLOAD			S[2 * i + 1]
  SWAP1			A -= S[0]
  SWAP4			A -= S[0]
  SUB			A -= S[0]
  SWAP3			A -= S[0]
  SWAP1			B -= S[1]
  SWAP2			B -= S[1]
  SUB			B -= S[1]
  SWAP1			B -= S[1]
  DUP3			A -= S[0]
  DUP6			inout
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  DUP7			inout[i]
  AND			inout[i]
  PUSH1 0x4		uint32[4] memory key
  DUP2			inout[i]
  LT			inout[i]
  ISZERO			inout[i]
  PUSH [ErrorTag]		S[i - 1]
  JUMPI			inout[i]
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  SWAP3			i < 26
  DUP4			i < 26
  AND			i < 26
  PUSH1 0x20		uint32[4] memory key
  SWAP2			S[i - 1]
  SWAP1			S[i - 1]
  SWAP2			S[i - 1]
  MUL			S[i - 1]
  SWAP1			S[i - 1]
  SWAP2			S[i - 1]
  ADD			S[i - 1]
  MSTORE			inout[i] = A
  DUP3			i
  SWAP1			i
  DUP7			S
  SWAP1			S
  PUSH1 0x1		uint32[4] memory key
  DUP8			i+1
  ADD			i+1
  AND			inout[i+1]
  PUSH1 0x4		uint32[4] memory key
  DUP2			inout[i+1]
  LT			inout[i+1]
  ISZERO			inout[i+1]
  PUSH [ErrorTag]		S[0]
  JUMPI			inout[i+1]
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  SWAP3			i < 26
  SWAP1			i < 26
  SWAP3			i < 26
  AND			i < 26
  PUSH1 0x20		uint32[4] memory key
  SWAP3			S[i - 1]
  SWAP1			S[i - 1]
  SWAP3			S[i - 1]
  MUL			S[i - 1]
  ADD			S[i - 1]
  MSTORE			inout[i+1] = B
  PUSH1 0x2		++i
  SWAP4			i += 2
  SWAP1			i += 2
  SWAP4			i += 2
  ADD			i += 2
  SWAP3			i += 2
  PUSH [tag47]		for (uint32 i = 0; i < 4; i += 2) {...
  JUMP			for (uint32 i = 0; i < 4; i += 2) {...
tag53: 
  JUMPDEST		rotate_right(B - S[2 * i + 1], A)
  XOR			rotate_right(A - S[2 * i], B) ^ B
  SWAP2			rotate_right(A - S[2 * i], B) ^ B
  POP			
  DUP2			rotate_right(A - S[2 * i], B) ^ B
  PUSH [tag55]		rotate_right(A - S[2 * i], B)
  DUP8			S
  PUSH1 0x2		++i
  DUP8			2 * i
  MUL			2 * i
  PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
  AND			S[2 * i]
  PUSH1 0x1A		uint32[26] memory box
  DUP2			S[2 * i]
  LT			S[2 * i]
  ISZERO			S[2 * i]
  PUSH [ErrorTag]		S[0]
  JUMPI			S[2 * i]
  PUSH1 0x20		uint32[4] memory key
  MUL			S[2 * i]
  ADD			S[2 * i]
  MLOAD			S[2 * i]
  DUP6			A - S[2 * i]
  SUB			A - S[2 * i]
  DUP3			rotate_right(A - S[2 * i], B) ^ B
  PUSH [tag20]		rotate_right
  JUMP	[in]		rotate_right(A - S[2 * i], B)
tag55: 
  JUMPDEST		rotate_right(A - S[2 * i], B)
  XOR			rotate_right(A - S[2 * i], B) ^ B
  SWAP3			rotate_right(A - S[2 * i], B) ^ B
  POP			
  PUSH1 0x0		
  NOT			
  ADD			i - 1
  PUSH [tag50]		for (int j = 12; j > 0; --j) {...
  JUMP			for (int j = 12; j > 0; --j) {...
.data:
  0: 
  .code:
    PUSH1 0x60		contract rc5 {...
    PUSH1 0x40		contract rc5 {...
    MSTORE			contract rc5 {...
    CALLDATASIZE			contract rc5 {...
    ISZERO			contract rc5 {...
    PUSH [tag1]		contract rc5 {...
    JUMPI			contract rc5 {...
    PUSH1 0xE0		
    PUSH1 0x2		
    EXP			
    PUSH1 0x0		contract rc5 {...
    CALLDATALOAD			contract rc5 {...
    DIV			contract rc5 {...
    PUSH4 0x434D16F5		contract rc5 {...
    DUP2			contract rc5 {...
    EQ			contract rc5 {...
    PUSH [tag2]		contract rc5 {...
    JUMPI			contract rc5 {...
    DUP1			contract rc5 {...
    PUSH4 0x4B8E38DB		contract rc5 {...
    EQ			contract rc5 {...
    PUSH [tag3]		contract rc5 {...
    JUMPI			contract rc5 {...
    DUP1			contract rc5 {...
    PUSH4 0x53127B88		contract rc5 {...
    EQ			contract rc5 {...
    PUSH [tag4]		contract rc5 {...
    JUMPI			contract rc5 {...
    DUP1			contract rc5 {...
    PUSH4 0x625126ED		contract rc5 {...
    EQ			contract rc5 {...
    PUSH [tag5]		contract rc5 {...
    JUMPI			contract rc5 {...
    DUP1			contract rc5 {...
    PUSH4 0x66AC777E		contract rc5 {...
    EQ			contract rc5 {...
    PUSH [tag2]		contract rc5 {...
    JUMPI			contract rc5 {...
    DUP1			contract rc5 {...
    PUSH4 0xA8E553F5		contract rc5 {...
    EQ			contract rc5 {...
    PUSH [tag7]		contract rc5 {...
    JUMPI			contract rc5 {...
    DUP1			contract rc5 {...
    PUSH4 0xD924C660		contract rc5 {...
    EQ			contract rc5 {...
    PUSH [tag5]		contract rc5 {...
    JUMPI			contract rc5 {...
    DUP1			contract rc5 {...
    PUSH4 0xED25E6C2		contract rc5 {...
    EQ			contract rc5 {...
    PUSH [tag9]		contract rc5 {...
    JUMPI			contract rc5 {...
  tag1: 
    JUMPDEST		contract rc5 {...
    PUSH [ErrorTag]		contract rc5 {...
    JUMP			contract rc5 {...
  tag2: 
    JUMPDEST		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    CALLVALUE			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH [ErrorTag]		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    JUMPI			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH [tag10]		function shift_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    CALLDATALOAD			function shift_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x24		function shift_left(uint32 v, uint32 n) returns (uint32) {...
    CALLDATALOAD			function shift_left(uint32 v, uint32 n) returns (uint32) {...
  tag11: 
    JUMPDEST		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x1F		0x1f
    AND			n &= 0x1f
    PUSH1 0x0		contract rc5 {...
    PUSH [tag27]		shift_right(v, 32 - n)
    DUP4			S[i - 1]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    DUP5			32 - n
    SWAP1			32 - n
    SUB			32 - n
  tag17: 
    JUMPDEST		function shift_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x2		++i
    DUP2			2**n
    SWAP1			2**n
    EXP			2**n
    SWAP1			v *= 2**n
    SWAP2			v *= 2**n
    MUL			v *= 2**n
    SWAP1			v *= 2**n
    DUP2			v *= 2**n
  tag26: 
    JUMPDEST		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    SWAP3			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    SWAP2			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    POP			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    POP			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    JUMP	[out]		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
  tag3: 
    JUMPDEST		function test(uint32[26] S, uint32[4] msg) {...
    CALLVALUE			function test(uint32[26] S, uint32[4] msg) {...
    PUSH [ErrorTag]		function test(uint32[26] S, uint32[4] msg) {...
    JUMPI			function test(uint32[26] S, uint32[4] msg) {...
    PUSH1 0x40		contract rc5 {...
    DUP1			uint32[4] memory tmp
    MLOAD			uint32[4] memory tmp
    PUSH2 0x340		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    ADD			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    MSTORE			function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH [tag12]		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    PUSH2 0x344		function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x1A		function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP3			function expand(uint32[4] L, uint32[26] S) {...
    DUP5			uint32[4] memory tmp
    CALLDATACOPY			function test(uint32[26] S, uint32[4] msg) {...
    POP			
    POP			
    PUSH1 0x40		contract rc5 {...
    DUP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    MLOAD			function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH1 0x80		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    ADD			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    MSTORE			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			uint32[4] memory tmp
    SWAP7			uint32[4] memory tmp
    POP			
    SWAP3			function expand(uint32[4] L, uint32[26] S) {...
    SWAP5			function expand(uint32[4] L, uint32[26] S) {...
    PUSH2 0x3C4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP5			function expand(uint32[4] L, uint32[26] S) {...
    POP			
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    DUP5			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP4			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP5			function decrypt(uint32[26] S, uint32[4] inout) {...
    CALLDATACOPY			function test(uint32[26] S, uint32[4] msg) {...
    POP			
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP6			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    POP			
    POP			
    POP			
    POP			
    POP			
    PUSH1 0x80		uint32[4] memory tmp
    PUSH1 0x40		uint32[4] memory tmp
    MLOAD			uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
    DUP2			uint32[4] memory tmp
    ADD			uint32[4] memory tmp
    PUSH1 0x40		uint32[4] memory tmp
    MSTORE			uint32[4] memory tmp
    DUP1			uint32[4] memory tmp
    PUSH1 0x4		uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
  tag29: 
    JUMPDEST		uint32[4] memory tmp
    PUSH1 0x0		uint32[4] memory tmp
    DUP2			uint32[4] memory tmp
    MSTORE			uint32[4] memory tmp
    PUSH1 0x20		uint32[4] memory tmp
    ADD			uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
    PUSH1 0x1		uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
    SUB			uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
    DUP2			uint32[4] memory tmp
    PUSH [tag29]		uint32[4] memory tmp
    JUMPI			uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
    POP			uint32[4] memory tmp
    POP			uint32[4] memory tmp
    PUSH1 0x0		uint i
    DUP3			msg
    SWAP2			uint32[4] memory tmp = msg
    POP			uint32[4] memory tmp = msg
    PUSH [tag31]		encrypt(S, tmp)
    DUP5			S
    DUP4			tmp
    PUSH [tag15]		encrypt
    JUMP	[in]		encrypt(S, tmp)
  tag4: 
    JUMPDEST		function encrypt(uint32[26] S, uint32[4] inout) {...
    CALLVALUE			function encrypt(uint32[26] S, uint32[4] inout) {...
    PUSH [ErrorTag]		function encrypt(uint32[26] S, uint32[4] inout) {...
    JUMPI			function encrypt(uint32[26] S, uint32[4] inout) {...
    PUSH1 0x40		contract rc5 {...
    DUP1			uint32[4] memory tmp
    MLOAD			uint32[4] memory tmp
    PUSH2 0x340		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    ADD			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    MSTORE			function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH [tag12]		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    PUSH2 0x344		function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x1A		function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP3			function expand(uint32[4] L, uint32[26] S) {...
    DUP5			uint32[4] memory tmp
    CALLDATACOPY			function encrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    POP			
    PUSH1 0x40		contract rc5 {...
    DUP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    MLOAD			function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH1 0x80		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    ADD			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    MSTORE			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			uint32[4] memory tmp
    SWAP7			uint32[4] memory tmp
    POP			
    SWAP3			function expand(uint32[4] L, uint32[26] S) {...
    SWAP5			function expand(uint32[4] L, uint32[26] S) {...
    PUSH2 0x3C4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP5			function expand(uint32[4] L, uint32[26] S) {...
    POP			
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    DUP5			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP4			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP5			function decrypt(uint32[26] S, uint32[4] inout) {...
    CALLDATACOPY			function encrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP6			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    POP			
    POP			
    POP			
    POP			
    POP			
  tag15: 
    JUMPDEST		function encrypt(uint32[26] S, uint32[4] inout) {...
    PUSH1 0x0		contract rc5 {...
    DUP1			contract rc5 {...
    DUP1			contract rc5 {...
    DUP1			contract rc5 {...
  tag38: 
    JUMPDEST		for (uint32 i = 0; i < 4; i += 2) {...
    PUSH1 0x4		4
    DUP5			i
    PUSH4 0xFFFFFFFF		i < 4
    AND			i < 4
    LT			i < 4
    ISZERO			for (uint32 i = 0; i < 4; i += 2) {...
    PUSH [tag39]		for (uint32 i = 0; i < 4; i += 2) {...
    JUMPI			for (uint32 i = 0; i < 4; i += 2) {...
    DUP5			inout
    DUP5			i
    PUSH4 0xFFFFFFFF		inout[i]
    AND			inout[i]
    PUSH1 0x4		inout[i]
    DUP2			inout[i]
    LT			inout[i]
    ISZERO			inout[i]
    PUSH [ErrorTag]		inout[i]
    JUMPI			inout[i]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			inout[i]
    SWAP3			inout[i]
    POP			
    DUP5			S
    PUSH1 0x1		S[0]
    DUP6			i+1
    ADD			i+1
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    AND			inout[i+1]
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			inout[i+1]
    LT			inout[i+1]
    ISZERO			inout[i+1]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			inout[i+1]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			S[i - 1]
    DUP2			S[i - 1]
    MUL			S[i - 1]
    SWAP2			S[i - 1]
    SWAP1			S[i - 1]
    SWAP2			S[i - 1]
    ADD			S[i - 1]
    MLOAD			inout[i]
    DUP8			inout[i]
    MLOAD			inout[i]
    SWAP2			S[i - 1]
    DUP9			S[i - 1]
    ADD			S[i - 1]
    MLOAD			inout[i]
    SWAP2			A += S[0]
    SWAP1			A += S[0]
    SWAP5			A += S[0]
    ADD			A += S[0]
    SWAP4			A += S[0]
    ADD			B += S[1]
    SWAP2			B += S[1]
    POP			
    PUSH1 0xC		12
    SWAP1			12
    POP			
  tag41: 
    JUMPDEST		for (int j = 12; j <= 4; ++j) {...
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			j <= 4
    SGT			j <= 4
    PUSH [tag42]		for (int j = 12; j <= 4; ++j) {...
    JUMPI			for (int j = 12; j <= 4; ++j) {...
    DUP6			S
    DUP5			i
    PUSH1 0x2		2
    MUL			2 * i
    PUSH4 0xFFFFFFFF		S[2 * i]
    AND			S[2 * i]
    PUSH1 0x1A		S[2 * i]
    DUP2			S[2 * i]
    LT			S[2 * i]
    ISZERO			S[2 * i]
    PUSH [ErrorTag]		S[2 * i]
    JUMPI			S[2 * i]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			S[2 * i + 1]
    PUSH [tag44]		rotate_left((A ^ B), B)
    DUP4			A ^ B
    DUP6			A ^ B
    XOR			A ^ B
    DUP5			B
    PUSH [tag11]		rotate_left
    JUMP	[in]		rotate_left((A ^ B), B)
  tag5: 
    JUMPDEST		function shift_left(uint32 v, uint32 n) returns (uint32) {...
    CALLVALUE			function shift_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH [ErrorTag]		function shift_left(uint32 v, uint32 n) returns (uint32) {...
    JUMPI			function shift_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH [tag10]		function shift_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    CALLDATALOAD			function shift_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x24		function shift_left(uint32 v, uint32 n) returns (uint32) {...
    CALLDATALOAD			function shift_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH [tag17]		shift_left
    JUMP			function shift_left(uint32 v, uint32 n) returns (uint32) {...
  tag7: 
    JUMPDEST		function decrypt(uint32[26] S, uint32[4] inout) {...
    CALLVALUE			function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH [ErrorTag]		function decrypt(uint32[26] S, uint32[4] inout) {...
    JUMPI			function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH1 0x40		contract rc5 {...
    DUP1			uint32[4] memory tmp
    MLOAD			uint32[4] memory tmp
    PUSH2 0x340		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    ADD			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    MSTORE			function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH [tag12]		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    PUSH2 0x344		function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x1A		function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			uint32[4] memory tmp
    SWAP1			uint32[4] memory tmp
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP3			function expand(uint32[4] L, uint32[26] S) {...
    DUP5			uint32[4] memory tmp
    CALLDATACOPY			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    POP			
    PUSH1 0x40		contract rc5 {...
    DUP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    MLOAD			function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH1 0x80		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    ADD			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    MSTORE			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			uint32[4] memory tmp
    SWAP7			uint32[4] memory tmp
    POP			
    SWAP3			function expand(uint32[4] L, uint32[26] S) {...
    SWAP5			function expand(uint32[4] L, uint32[26] S) {...
    PUSH2 0x3C4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP5			function expand(uint32[4] L, uint32[26] S) {...
    POP			
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP2			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    DUP5			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP4			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP3			function decrypt(uint32[26] S, uint32[4] inout) {...
    DUP5			function decrypt(uint32[26] S, uint32[4] inout) {...
    CALLDATACOPY			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    SWAP1			function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP6			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    PUSH [tag21]		function decrypt(uint32[26] S, uint32[4] inout) {...
    SWAP5			function decrypt(uint32[26] S, uint32[4] inout) {...
    POP			
    POP			
    POP			
    POP			
    POP			
    JUMP			function decrypt(uint32[26] S, uint32[4] inout) {...
  tag9: 
    JUMPDEST		function expand(uint32[4] L, uint32[26] S) {...
    CALLVALUE			function expand(uint32[4] L, uint32[26] S) {...
    PUSH [ErrorTag]		function expand(uint32[4] L, uint32[26] S) {...
    JUMPI			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x40		contract rc5 {...
    DUP1			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    MLOAD			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x80		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function expand(uint32[4] L, uint32[26] S) {...
    ADD			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    SWAP3			function expand(uint32[4] L, uint32[26] S) {...
    MSTORE			function expand(uint32[4] L, uint32[26] S) {...
    PUSH [tag12]		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x84		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    SWAP1			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    DUP3			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP3			function expand(uint32[4] L, uint32[26] S) {...
    DUP5			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    CALLDATACOPY			function expand(uint32[4] L, uint32[26] S) {...
    POP			
    POP			
    PUSH1 0x40		contract rc5 {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    MLOAD			function expand(uint32[4] L, uint32[26] S) {...
    PUSH2 0x340		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function expand(uint32[4] L, uint32[26] S) {...
    DUP2			function expand(uint32[4] L, uint32[26] S) {...
    ADD			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    SWAP3			function expand(uint32[4] L, uint32[26] S) {...
    MSTORE			function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    SWAP7			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    POP			
    SWAP2			function expand(uint32[4] L, uint32[26] S) {...
    SWAP5			function expand(uint32[4] L, uint32[26] S) {...
    PUSH2 0x3C4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP5			function expand(uint32[4] L, uint32[26] S) {...
    POP			
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    SWAP3			function expand(uint32[4] L, uint32[26] S) {...
    POP			
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x1A		function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP4			function expand(uint32[4] L, uint32[26] S) {...
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP1			function expand(uint32[4] L, uint32[26] S) {...
    DUP3			function expand(uint32[4] L, uint32[26] S) {...
    DUP5			function expand(uint32[4] L, uint32[26] S) {...
    CALLDATACOPY			function expand(uint32[4] L, uint32[26] S) {...
    POP			
    SWAP1			function expand(uint32[4] L, uint32[26] S) {...
    SWAP6			function expand(uint32[4] L, uint32[26] S) {...
    POP			
    POP			
    POP			
    POP			
    POP			
    POP			
    PUSH1 0x0		contract rc5 {...
    DUP1			contract rc5 {...
    DUP1			contract rc5 {...
    DUP1			contract rc5 {...
    DUP1			contract rc5 {...
    PUSH4 0xB7E15163		0xb7e15163
    DUP7			S[i - 1]
    DUP3			contract rc5 {...
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    SWAP3			i < 26
    SWAP1			i < 26
    SWAP3			i < 26
    AND			i < 26
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    SWAP3			S[i - 1]
    SWAP1			S[i - 1]
    SWAP3			S[i - 1]
    MUL			S[i - 1]
    ADD			S[i - 1]
    MSTORE			S[0] = 0xb7e15163
    PUSH1 0x1		S[0]
    SWAP3			S[0]
    POP			
  tag61: 
    JUMPDEST		for (i = 1; i < 26; ++i)...
    PUSH1 0x1A		26
    DUP4			i
    PUSH4 0xFFFFFFFF		i < 26
    AND			i < 26
    LT			i < 26
    ISZERO			for (i = 1; i < 26; ++i)...
    PUSH [tag62]		for (i = 1; i < 26; ++i)...
    JUMPI			for (i = 1; i < 26; ++i)...
    DUP6			S
    PUSH1 0x1		1
    DUP5			i
    SUB			i - 1
    PUSH4 0xFFFFFFFF		S[i - 1]
    AND			S[i - 1]
    PUSH1 0x1A		S[i - 1]
    DUP2			S[i - 1]
    LT			S[i - 1]
    ISZERO			S[i - 1]
    PUSH [ErrorTag]		S[i - 1]
    JUMPI			S[i - 1]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			S[i - 1]
    PUSH4 0x9E3779B9		0x9e3779b9
    ADD			S[i - 1] + 0x9e3779b9
    DUP7			S
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    DUP6			S[i]
    AND			S[i]
    PUSH1 0x1A		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			S[i]
    LT			S[i]
    ISZERO			S[i]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			S[i]
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    SWAP3			i < 26
    SWAP1			i < 26
    SWAP3			i < 26
    AND			i < 26
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    SWAP3			S[i - 1]
    SWAP1			S[i - 1]
    SWAP3			S[i - 1]
    MUL			S[i - 1]
    ADD			S[i - 1]
    MSTORE			S[i] = S[i - 1] + 0x9e3779b9
    PUSH1 0x1		S[0]
    SWAP3			++i
    SWAP1			++i
    SWAP3			++i
    ADD			++i
    SWAP2			++i
    PUSH [tag61]		for (i = 1; i < 26; ++i)...
    JUMP			for (i = 1; i < 26; ++i)...
  tag10: 
    JUMPDEST		function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x40		contract rc5 {...
    DUP1			uint32[4] memory tmp
    MLOAD			uint32[4] memory tmp
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    SWAP3			L[j] = rotate_left((L[j] + A + B), A + B)
    SWAP1			L[j] = rotate_left((L[j] + A + B), A + B)
    SWAP3			L[j] = rotate_left((L[j] + A + B), A + B)
    AND			L[j] = rotate_left((L[j] + A + B), A + B)
    DUP3			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    MSTORE			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    MLOAD			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    SWAP1			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    DUP2			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    SWAP1			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    SUB			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    ADD			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    SWAP1			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
    RETURN			function rotate_left(uint32 v, uint32 n) returns (uint32) {...
  tag12: 
    JUMPDEST		function test(uint32[26] S, uint32[4] msg) {...
    STOP			function test(uint32[26] S, uint32[4] msg) {...
  tag31: 
    JUMPDEST		encrypt(S, tmp)
    PUSH [tag32]		decrypt(S, tmp)
    DUP5			S
    DUP4			tmp
  tag21: 
    JUMPDEST		function decrypt(uint32[26] S, uint32[4] inout) {...
    PUSH1 0x0		contract rc5 {...
    DUP1			contract rc5 {...
    DUP1			contract rc5 {...
    DUP1			contract rc5 {...
  tag51: 
    JUMPDEST		for (uint32 i = 0; i < 4; i += 2) {...
    PUSH1 0x4		4
    DUP5			i
    PUSH4 0xFFFFFFFF		i < 4
    AND			i < 4
    LT			i < 4
    ISZERO			for (uint32 i = 0; i < 4; i += 2) {...
    PUSH [tag39]		for (uint32 i = 0; i < 4; i += 2) {...
    JUMPI			for (uint32 i = 0; i < 4; i += 2) {...
    DUP5			inout
    DUP5			i
    PUSH4 0xFFFFFFFF		inout[i]
    AND			inout[i]
    PUSH1 0x4		inout[i]
    DUP2			inout[i]
    LT			inout[i]
    ISZERO			inout[i]
    PUSH [ErrorTag]		inout[i]
    JUMPI			inout[i]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			inout[i]
    SWAP3			inout[i]
    POP			
    DUP5			S
    PUSH1 0x1		S[0]
    DUP6			i+1
    ADD			i+1
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    AND			inout[i+1]
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			inout[i+1]
    LT			inout[i+1]
    ISZERO			inout[i+1]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			inout[i+1]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			inout[i]
    SWAP2			inout[i]
    POP			
    PUSH1 0xC		12
    SWAP1			12
    POP			
  tag54: 
    JUMPDEST		for (int j = 12; j > 0; --j) {...
    PUSH1 0x0		0
    DUP2			j
    SGT			j > 0
    ISZERO			for (int j = 12; j > 0; --j) {...
    PUSH [tag55]		for (int j = 12; j > 0; --j) {...
    JUMPI			for (int j = 12; j > 0; --j) {...
    DUP3			A
    PUSH [tag57]		rotate_right(B - S[2 * i + 1], A)
    DUP8			S
    DUP7			i
    PUSH1 0x2		2
    MUL			2 * i
    PUSH1 0x1		1
    ADD			2 * i + 1
    PUSH4 0xFFFFFFFF		S[2 * i + 1]
    AND			S[2 * i + 1]
    PUSH1 0x1A		S[2 * i + 1]
    DUP2			S[2 * i + 1]
    LT			S[2 * i + 1]
    ISZERO			S[2 * i + 1]
    PUSH [ErrorTag]		S[2 * i + 1]
    JUMPI			S[2 * i + 1]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			S[2 * i + 1]
    DUP5			B - S[2 * i + 1]
    SUB			B - S[2 * i + 1]
    DUP6			S
    PUSH [tag11]		rotate_left
    JUMP	[in]		rotate_right(B - S[2 * i + 1], A)
  tag27: 
    JUMPDEST		shift_right(v, 32 - n)
    PUSH [tag28]		shift_left(v, n)
    DUP5			v
    DUP5			n
    PUSH [tag17]		shift_left
    JUMP	[in]		shift_left(v, n)
  tag28: 
    JUMPDEST		shift_left(v, n)
    OR			shift_left(v, n) | shift_right(v, 32 - n)
    SWAP1			return shift_left(v, n) | shift_right(v, 32 - n)
    POP			return shift_left(v, n) | shift_right(v, 32 - n)
    PUSH [tag26]		return shift_left(v, n) | shift_right(v, 32 - n)
    JUMP			return shift_left(v, n) | shift_right(v, 32 - n)
  tag32: 
    JUMPDEST		decrypt(S, tmp)
    POP			
    PUSH1 0x0		contract rc5 {...
  tag33: 
    JUMPDEST		for (uint i = 0; i < 4; ++i) {...
    PUSH1 0x4		4
    DUP2			i
    LT			i < 4
    ISZERO			for (uint i = 0; i < 4; ++i) {...
    PUSH [tag34]		for (uint i = 0; i < 4; ++i) {...
    JUMPI			for (uint i = 0; i < 4; ++i) {...
    DUP2			tmp
    DUP2			i
    PUSH1 0x4		tmp[i]
    DUP2			tmp[i]
    LT			tmp[i]
    ISZERO			tmp[i]
    PUSH [ErrorTag]		tmp[i]
    JUMPI			tmp[i]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			tmp[i]
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    AND			msg[i] != tmp[i]
    DUP4			i
    DUP3			i
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			msg[i]
    LT			msg[i]
    ISZERO			msg[i]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			msg[i]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			tmp[i]
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    AND			msg[i] != tmp[i]
    EQ			msg[i] != tmp[i]
    PUSH [tag36]		if (msg[i] != tmp[i])...
    JUMPI			if (msg[i] != tmp[i])...
    PUSH [ErrorTag]		throw
    JUMP			throw
  tag34: 
    JUMPDEST		for (uint i = 0; i < 4; ++i) {...
    POP			function test(uint32[26] S, uint32[4] msg) {...
    POP			function test(uint32[26] S, uint32[4] msg) {...
    POP			function test(uint32[26] S, uint32[4] msg) {...
    POP			function test(uint32[26] S, uint32[4] msg) {...
    JUMP	[out]		function test(uint32[26] S, uint32[4] msg) {...
  tag36: 
    JUMPDEST		if (msg[i] != tmp[i])...
    PUSH1 0x1		S[0]
    ADD			++i
    PUSH [tag33]		for (uint i = 0; i < 4; ++i) {...
    JUMP			for (uint i = 0; i < 4; ++i) {...
  tag39: 
    JUMPDEST		for (uint32 i = 0; i < 4; i += 2) {...
    POP			function encrypt(uint32[26] S, uint32[4] inout) {...
    POP			function encrypt(uint32[26] S, uint32[4] inout) {...
    POP			function encrypt(uint32[26] S, uint32[4] inout) {...
    POP			function encrypt(uint32[26] S, uint32[4] inout) {...
    POP			function encrypt(uint32[26] S, uint32[4] inout) {...
    POP			function encrypt(uint32[26] S, uint32[4] inout) {...
    JUMP	[out]		function encrypt(uint32[26] S, uint32[4] inout) {...
  tag42: 
    JUMPDEST		for (int j = 12; j <= 4; ++j) {...
    DUP3			A
    DUP6			inout
    DUP6			i
    PUSH4 0xFFFFFFFF		inout[i]
    AND			inout[i]
    PUSH1 0x4		inout[i]
    DUP2			inout[i]
    LT			inout[i]
    ISZERO			inout[i]
    PUSH [ErrorTag]		inout[i]
    JUMPI			inout[i]
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    SWAP3			i < 26
    DUP4			i < 26
    AND			i < 26
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			S[i - 1]
    SWAP1			S[i - 1]
    SWAP2			S[i - 1]
    MUL			S[i - 1]
    SWAP1			S[i - 1]
    SWAP2			S[i - 1]
    ADD			S[i - 1]
    MSTORE			inout[i] = A
    DUP3			i
    SWAP1			i
    DUP7			S
    SWAP1			S
    PUSH1 0x1		S[0]
    DUP8			i+1
    ADD			i+1
    AND			inout[i+1]
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			inout[i+1]
    LT			inout[i+1]
    ISZERO			inout[i+1]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			inout[i+1]
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    SWAP3			i < 26
    SWAP1			i < 26
    SWAP3			i < 26
    AND			i < 26
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    SWAP3			S[i - 1]
    SWAP1			S[i - 1]
    SWAP3			S[i - 1]
    MUL			S[i - 1]
    ADD			S[i - 1]
    MSTORE			inout[i+1] = B
    PUSH1 0x2		++i
    SWAP4			i += 2
    SWAP1			i += 2
    SWAP4			i += 2
    ADD			i += 2
    SWAP3			i += 2
    PUSH [tag38]		for (uint32 i = 0; i < 4; i += 2) {...
    JUMP			for (uint32 i = 0; i < 4; i += 2) {...
  tag44: 
    JUMPDEST		rotate_left((A ^ B), B)
    ADD			rotate_left((B ^ A), A) + S[2 * i + 1]
    SWAP3			rotate_left((B ^ A), A) + S[2 * i + 1]
    POP			
    DUP6			S
    PUSH1 0x2		++i
    DUP6			2 * i
    MUL			2 * i
    PUSH1 0x1		S[0]
    ADD			2 * i + 1
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    AND			S[2 * i + 1]
    PUSH1 0x1A		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			S[2 * i + 1]
    LT			S[2 * i + 1]
    ISZERO			S[2 * i + 1]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			S[2 * i + 1]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[2 * i + 1]
    ADD			S[2 * i + 1]
    MLOAD			S[2 * i + 1]
    PUSH [tag45]		rotate_left((B ^ A), A)
    DUP5			B ^ A
    DUP5			B ^ A
    XOR			B ^ A
    DUP6			rotate_left((B ^ A), A) + S[2 * i + 1]
    PUSH [tag11]		rotate_left
    JUMP	[in]		rotate_left((B ^ A), A)
  tag45: 
    JUMPDEST		rotate_left((B ^ A), A)
    ADD			rotate_left((B ^ A), A) + S[2 * i + 1]
    SWAP2			rotate_left((B ^ A), A) + S[2 * i + 1]
    POP			
    PUSH1 0x1		S[0]
    ADD			++i
    PUSH [tag41]		for (int j = 12; j <= 4; ++j) {...
    JUMP			for (int j = 12; j <= 4; ++j) {...
  tag55: 
    JUMPDEST		for (int j = 12; j > 0; --j) {...
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    DUP7			S[i - 1]
    ADD			S[i - 1]
    MLOAD			S[2 * i + 1]
    DUP7			S[2 * i + 1]
    MLOAD			S[2 * i + 1]
    SWAP1			A -= S[0]
    SWAP4			A -= S[0]
    SUB			A -= S[0]
    SWAP3			A -= S[0]
    SWAP1			B -= S[1]
    SWAP2			B -= S[1]
    SUB			B -= S[1]
    SWAP1			B -= S[1]
    DUP3			A -= S[0]
    DUP6			S
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    DUP7			inout[i]
    AND			inout[i]
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			inout[i]
    LT			inout[i]
    ISZERO			inout[i]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			inout[i]
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    SWAP3			i < 26
    DUP4			i < 26
    AND			i < 26
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			S[i - 1]
    SWAP1			S[i - 1]
    SWAP2			S[i - 1]
    MUL			S[i - 1]
    SWAP1			S[i - 1]
    SWAP2			S[i - 1]
    ADD			S[i - 1]
    MSTORE			inout[i] = A
    DUP3			i
    SWAP1			i
    DUP7			S
    SWAP1			S
    PUSH1 0x1		S[0]
    DUP8			i+1
    ADD			i+1
    AND			inout[i+1]
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			inout[i+1]
    LT			inout[i+1]
    ISZERO			inout[i+1]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			inout[i+1]
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    SWAP3			i < 26
    SWAP1			i < 26
    SWAP3			i < 26
    AND			i < 26
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    SWAP3			S[i - 1]
    SWAP1			S[i - 1]
    SWAP3			S[i - 1]
    MUL			S[i - 1]
    ADD			S[i - 1]
    MSTORE			inout[i+1] = B
    PUSH1 0x2		++i
    SWAP4			i += 2
    SWAP1			i += 2
    SWAP4			i += 2
    ADD			i += 2
    SWAP3			i += 2
    PUSH [tag51]		for (uint32 i = 0; i < 4; i += 2) {...
    JUMP			for (uint32 i = 0; i < 4; i += 2) {...
  tag57: 
    JUMPDEST		rotate_right(B - S[2 * i + 1], A)
    XOR			rotate_right(A - S[2 * i], B) ^ B
    SWAP2			rotate_right(A - S[2 * i], B) ^ B
    POP			
    DUP2			rotate_right(A - S[2 * i], B) ^ B
    PUSH [tag58]		rotate_right(A - S[2 * i], B)
    DUP8			S
    PUSH1 0x2		++i
    DUP8			2 * i
    MUL			2 * i
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    AND			S[2 * i]
    PUSH1 0x1A		function expand(uint32[4] L, uint32[26] S) {...
    DUP2			S[2 * i]
    LT			S[2 * i]
    ISZERO			S[2 * i]
    PUSH [ErrorTag]		contract rc5 {...
    JUMPI			S[2 * i]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[2 * i]
    ADD			S[2 * i]
    MLOAD			S[2 * i]
    DUP6			A - S[2 * i]
    SUB			A - S[2 * i]
    DUP3			rotate_right(A - S[2 * i], B) ^ B
    PUSH [tag11]		rotate_left
    JUMP	[in]		rotate_right(A - S[2 * i], B)
  tag58: 
    JUMPDEST		rotate_right(A - S[2 * i], B)
    XOR			rotate_right(A - S[2 * i], B) ^ B
    SWAP3			rotate_right(A - S[2 * i], B) ^ B
    POP			
    PUSH1 0x0		
    NOT			
    ADD			i - 1
    PUSH [tag54]		for (int j = 12; j > 0; --j) {...
    JUMP			for (int j = 12; j > 0; --j) {...
  tag62: 
    JUMPDEST		for (i = 1; i < 26; ++i)...
    POP			
    PUSH1 0x0		contract rc5 {...
    SWAP2			contract rc5 {...
    POP			
    DUP2			contract rc5 {...
    SWAP1			contract rc5 {...
    POP			
    PUSH1 0x4E		3*26
  tag64: 
    JUMPDEST		while (n-- > 0) {...
    PUSH1 0x0		
    NOT			
    DUP2			n--
    ADD			n--
    SWAP1			n--
    PUSH1 0x0		contract rc5 {...
    SWAP1			n-- > 0
    SGT			n-- > 0
    ISZERO			while (n-- > 0) {...
    PUSH [tag65]		while (n-- > 0) {...
    JUMPI			while (n-- > 0) {...
    PUSH [tag66]		rotate_left((S[i] + A + B), 3)
    DUP5			B
    DUP7			A
    DUP9			S
    DUP7			i
    PUSH4 0xFFFFFFFF		S[i]
    AND			S[i]
    PUSH1 0x1A		S[i]
    DUP2			S[i]
    LT			S[i]
    ISZERO			S[i]
    PUSH [ErrorTag]		S[i]
    JUMPI			S[i]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			S[i - 1]
    ADD			S[i - 1]
    MLOAD			S[i - 1]
    ADD			S[i] + A
    ADD			S[i] + A + B
    PUSH1 0x3		3
    PUSH [tag11]		rotate_left
    JUMP	[in]		rotate_left((S[i] + A + B), 3)
  tag65: 
    JUMPDEST		while (n-- > 0) {...
    POP			function expand(uint32[4] L, uint32[26] S) {...
    POP			function expand(uint32[4] L, uint32[26] S) {...
    POP			function expand(uint32[4] L, uint32[26] S) {...
    POP			function expand(uint32[4] L, uint32[26] S) {...
    POP			function expand(uint32[4] L, uint32[26] S) {...
    POP			function expand(uint32[4] L, uint32[26] S) {...
    POP			function expand(uint32[4] L, uint32[26] S) {...
    JUMP	[out]		function expand(uint32[4] L, uint32[26] S) {...
  tag66: 
    JUMPDEST		rotate_left((S[i] + A + B), 3)
    DUP7			S
    DUP5			i
    PUSH4 0xFFFFFFFF		S[i]
    AND			S[i]
    PUSH1 0x1A		S[i]
    DUP2			S[i]
    LT			S[i]
    ISZERO			S[i]
    PUSH [ErrorTag]		S[i]
    JUMPI			S[i]
    SWAP1			S[i]
    SWAP1			S[i]
    PUSH1 0x20		S[i]
    MUL			S[i]
    ADD			S[i]
    SWAP1			S[i] = rotate_left((S[i] + A + B), 3)
    PUSH4 0xFFFFFFFF		S[i] = rotate_left((S[i] + A + B), 3)
    AND			S[i] = rotate_left((S[i] + A + B), 3)
    SWAP1			S[i] = rotate_left((S[i] + A + B), 3)
    DUP2			S[i] = rotate_left((S[i] + A + B), 3)
    DUP2			S[i] = rotate_left((S[i] + A + B), 3)
    MSTORE			S[i] = rotate_left((S[i] + A + B), 3)
    PUSH1 0x20		S[i] = rotate_left((S[i] + A + B), 3)
    ADD			S[i] = rotate_left((S[i] + A + B), 3)
    POP			S[i] = rotate_left((S[i] + A + B), 3)
    SWAP5			A = S[i] = rotate_left((S[i] + A + B), 3)
    POP			A = S[i] = rotate_left((S[i] + A + B), 3)
    DUP5			A = S[i] = rotate_left((S[i] + A + B), 3)
    POP			A = S[i] = rotate_left((S[i] + A + B), 3)
    PUSH [tag67]		rotate_left((L[j] + A + B), A + B)
    DUP5			B
    DUP7			A
    DUP10			L
    DUP6			j
    PUSH4 0xFFFFFFFF		L[j]
    AND			L[j]
    PUSH1 0x4		L[j]
    DUP2			L[j]
    LT			L[j]
    ISZERO			L[j]
    PUSH [ErrorTag]		L[j]
    JUMPI			L[j]
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    MUL			L[j]
    ADD			L[j]
    MLOAD			L[j]
    ADD			L[j] + A
    ADD			L[j] + A + B
    DUP7			A + B
    DUP7			A + B
    ADD			A + B
    PUSH [tag11]		rotate_left
    JUMP	[in]		rotate_left((L[j] + A + B), A + B)
  tag67: 
    JUMPDEST		rotate_left((L[j] + A + B), A + B)
    DUP8			L
    DUP4			j
    PUSH4 0xFFFFFFFF		L[j]
    AND			L[j]
    PUSH1 0x4		L[j]
    DUP2			L[j]
    LT			L[j]
    ISZERO			L[j]
    PUSH [ErrorTag]		L[j]
    JUMPI			L[j]
    PUSH4 0xFFFFFFFF		S[0] = 0xb7e15163
    SWAP3			L[j] = rotate_left((L[j] + A + B), A + B)
    DUP4			L[j] = rotate_left((L[j] + A + B), A + B)
    AND			L[j] = rotate_left((L[j] + A + B), A + B)
    PUSH1 0x20		function expand(uint32[4] L, uint32[26] S) {...
    SWAP2			L[j]
    SWAP1			L[j]
    SWAP2			L[j]
    MUL			L[j]
    SWAP1			L[j]
    SWAP2			L[j]
    ADD			L[j]
    DUP2			L[j] = rotate_left((L[j] + A + B), A + B)
    SWAP1			L[j] = rotate_left((L[j] + A + B), A + B)
    MSTORE			L[j] = rotate_left((L[j] + A + B), A + B)
    SWAP5			L[j] = rotate_left((L[j] + A + B), A + B)
    POP			
    PUSH1 0x1A		function expand(uint32[4] L, uint32[26] S) {...
    PUSH1 0x1		S[0]
    SWAP5			++i
    DUP6			++i
    ADD			++i
    DUP3			++i % 26
    AND			++i % 26
    MOD			++i % 26
    SWAP4			++i % 26
    PUSH1 0x4		function expand(uint32[4] L, uint32[26] S) {...
    SWAP4			++i
    ADD			++i
    AND			++j % 4
    SWAP2			++j % 4
    SWAP1			++j % 4
    SWAP2			++j % 4
    MOD			++j % 4
    SWAP1			++j % 4
    PUSH [tag64]		while (n-- > 0) {...
    JUMP			while (n-- > 0) {...
